perm filename PRECOM.AUX[SYS,HE] blob
sn#009299 filedate 1972-12-06 generic text, type T, neo UTF8
COMMENT ⊗ VALID 00005 PAGES
RECORD PAGE DESCRIPTION
00001 00001
00002 00002 ALTERNATE PDP-10 MNEMONICS.
00004 00003 FETCH LINK FROM NODE.
00009 00004 PROPERTY-TYPE MACROS.
00010 00005 SAIL LIKE SUBROUTINE LINKAGE.
00012 ENDMK
⊗;
; ALTERNATE PDP-10 MNEMONICS.
OPDEF LIP [HLR]
OPDEF LAP [HRR]
OPDEF DIP [HRLM]
OPDEF DAP [HRRM]
OPDEF LIPZ [HLRZ]
OPDEF LAPZ [HRRZ]
OPDEF DIPZ [HRLZM]
OPDEF DAPZ [HRRZM]
OPDEF SLIP [HLL]
OPDEF SLAP [HRL]
OPDEF STIP [HLLM]
OPDEF STAP [HLRM]
OPDEF SLIPZ [HLLZ]
OPDEF SLAPZ [HRLZ]
OPDEF STIPZ [HLLZM]
OPDEF STAPZ [HLRZM]
OPDEF ZIP [HRRZS]
OPDEF ZAP [HLLZS]
OPDEF WIP [HRROS]
OPDEF WAP [HRRZS]
OPDEF NIP [HLRE]
OPDEF NAP [HRRE]
OPDEF NIM [HRREI]
OPDEF LIM [HRRI]
OPDEF SLIM [HRLI]
OPDEF CAR [HLRZ]
OPDEF CDR [HRRZ]
OPDEF LAC [MOVE]
OPDEF DAC [MOVEM]
OPDEF GO [JRST]
OPDEF LIMZ [MOVEI]
OPDEF SLIMZ [MOVSI]
OPDEF FIXX [FIX 233000]
OPDEF FLOAT [FSC 233]
DEFINE FLIM(AC,R)<HRLEI AC,(<R>)>;FLOATING IMMEDIATE.
OPDEF LACN [MOVN]
OPDEF DACN [MOVNM]
OPDEF LACM [MOVM]
OPDEF DACM [MOVMM]
; FETCH LINK FROM NODE.
DEFINE PART (Q,E)<NIP Q,-3(E)>↔DEFINE COPART(Q,E)<NAP Q,-3(E)>
DEFINE EXTENT(Q,E)<CAR Q,-2(E)>↔DEFINE LOCOR (Q,E)<CDR Q,-2(E)>
DEFINE PNAME (Q,E)<CAR Q,-1(E)>↔DEFINE DISK (Q,E)<CDR Q,-1(E)>
DEFINE TYPE (Q,E)<CAR Q, 0(E)>↔DEFINE SERIAL(Q,E)<CDR Q, 0(E)>
DEFINE NFACE (Q,E)<CAR Q, 1(E)>↔DEFINE PFACE (Q,E)<CDR Q, 1(E)>
DEFINE NED (Q,E)<CAR Q, 2(E)>↔DEFINE PED (Q,E)<CDR Q, 2(E)>
DEFINE NVT (Q,E)<CAR Q, 3(E)>↔DEFINE PVT (Q,E)<CDR Q, 3(E)>
DEFINE NCW (Q,E)<CAR Q, 4(E)>↔DEFINE PCW (Q,E)<CDR Q, 4(E)>
DEFINE NCCW (Q,E)<CAR Q, 5(E)>↔DEFINE PCCW (Q,E)<CDR Q, 5(E)>
DEFINE FCNT (Q,E)<CAR Q, 4(E)>↔DEFINE VCNT (Q,E)<CDR Q, 4(E)>
DEFINE ECNT (Q,E)<CAR Q, 5(E)>↔DEFINE PCNT (Q,E)<CDR Q, 5(E)>
DEFINE NBODY (Q,E)<CAR Q, 6(E)>↔DEFINE PBODY (Q,E)<CDR Q, 6(E)>
DEFINE NUF (Q,E)<CAR Q, 7(E)>↔DEFINE PUF (Q,E)<CDR Q, 7(E)>
DEFINE NCNT (Q,E)<NIP Q, 2(E)>↔DEFINE TJOINT(Q,E)<CDR Q, 1(E)>
DEFINE X1DC (Q,E)<NIP Q, 8(E)>↔DEFINE Y1DC (Q,E)<NAP Q, 8(E)>
DEFINE X2DC (Q,E)<NIP Q, 9(E)>↔DEFINE Y2DC (Q,E)<NAP Q, 9(E)>
DEFINE XDC (Q,E)<HLLE Q,1(E)>↔DEFINE YDC (Q,E)<HLLE Q,2(E)>
; STORE LINK INTO NODE.
DEFINE PART. (Q,E)<DIP Q,-3(E)>↔DEFINE COPAR.(Q,E)<DAP Q,-3(E)>
DEFINE EXTEN.(Q,E)<DIP Q,-2(E)>↔DEFINE LOCOR.(Q,E)<DAP Q,-2(E)>
DEFINE PNAME.(Q,E)<DIP Q,-1(E)>↔DEFINE DISK. (Q,E)<DAP Q,-1(E)>
DEFINE TYPE. (Q,E)<DIP Q, 0(E)>↔DEFINE SERIA.(Q,E)<DAP Q, 0(E)>
DEFINE NFACE.(Q,E)<DIP Q, 1(E)>↔DEFINE PFACE.(Q,E)<DAP Q, 1(E)>
DEFINE NED. (Q,E)<DIP Q, 2(E)>↔DEFINE PED. (Q,E)<DAP Q, 2(E)>
DEFINE NVT. (Q,E)<DIP Q, 3(E)>↔DEFINE PVT. (Q,E)<DAP Q, 3(E)>
DEFINE NCW.. (Q,E)<DIP Q, 4(E)>↔DEFINE PCW.. (Q,E)<DAP Q, 4(E)>
DEFINE NCCW..(Q,E)<DIP Q, 5(E)>↔DEFINE PCCW..(Q,E)<DAP Q, 5(E)>
DEFINE FCNT. (Q,E)<DIP Q, 4(E)>↔DEFINE VCNT. (Q,E)<DAP Q, 4(E)>
DEFINE ECNT. (Q,E)<DIP Q, 5(E)>↔DEFINE PCNT. (Q,E)<DAP Q, 5(E)>
DEFINE NBODY.(Q,E)<DIP Q, 6(E)>↔DEFINE PBODY.(Q,E)<DAP Q, 6(E)>
DEFINE NUF. (Q,E)<DIP Q, 7(E)>↔DEFINE PUF. (Q,E)<DAP Q, 7(E)>
DEFINE NCNT. (Q,E)<DIP Q, 2(E)>↔DEFINE TJOIN.(Q,E)<DAP Q, 1(E)>
DEFINE X1DC. (Q,E)<DIP Q, 8(E)>↔DEFINE Y1DC. (Q,E)<DAP Q, 8(E)>
DEFINE X2DC. (Q,E)<DIP Q, 9(E)>↔DEFINE Y2DC. (Q,E)<DAP Q, 9(E)>
DEFINE XDC. (Q,E)<STIP Q,1(E)>↔DEFINE YDC. (Q,E)<STIP Q,2(E)>
; NAMES OF NODE DATA WORDS.
↓AA ←← ↓XWC ←← -3
↓BB ←← ↓YWC ←← -2
↓CC ←← ↓ZWC ←← -1
↓QQ ←← 3
↓KK ←← 4
↓XPP ←← 4↔ ↓YPP ←← 5↔ ↓ZPP ←← 6
↓IX←←0↔ ↓IY←←1↔ ↓IZ←←2
↓JX←←3↔ ↓JY←←4↔ ↓JZ←←5
↓KX←←6↔ ↓KY←←7↔ ↓KZ←←8
; PROPERTY-TYPE MACROS.
DEFINE MARK(Q,BITS){
SLIMZ(BITS) ↔ IORM (Q)}
DEFINE MARKZ(Q,BITS){
SLIMZ(BITS) ↔ ANDCAM (Q)}
DEFINE TEST(Q,BITS){
LAC(Q) ↔ TLNN(BITS)}
DEFINE TESTZ(Q,BITS){
LAC(Q) ↔ TLNE(BITS)}
; PROPERTY-TYPE BITS.
↓BBIT ←← 1B17
↓FBIT ←← 1B16
↓EBIT ←← 1B15
↓VBIT ←← 1B14
↓PZZ ←← 1B9
↓NZZ ←← 1B10
↓FOLDED ←← 1B11
↓VISIBLE ←← 1B12
↓POTENT ←← 1B13
↓DARKEN ←← 1B3
↓NORTH ←← 1B5
↓SOUTH ←← 1B6
↓EAST ←← 1B7
↓WEST ←← 1B8
↓NSEW ←← 17B8
DEFINE HIDE(Q){
SLIMZ(3B13)↔ANDCAM(Q)}
↓TEMPORARY ←← 1B2
; SAIL LIKE SUBROUTINE LINKAGE.
↓P ←← 17
DEFINE SUBR(NAME){INTERN NAME↔↓NAME: ;}
DEFINE CALL(NAME,X1,X2,X3,X4){
IFDIF <> <X1> {PUSH P,X1
IFDIF <> <X2> {PUSH P,X2
IFDIF <> <X3> {PUSH P,X3
IFDIF <> <X4> {PUSH P,X4}}}}
PUSHJ P,NAME}
;ARGUMENT FETCH.
FOR @$ I←1,4{
DEFINE ARG$I <-I(17)>}
;CALL AND RETURN VALUE.
DEFINE SETQ (VAR,LIST){
CALL(LIST)
DAC 1,VAR}
;RETURN N-ARGUMENTS & OPTIONAL RESULT.
FOR @$ I←1,4{
DEFINE RET$I(R){IFDIF<><R><LAC 1,R>↔GO RET$I$.}
↓RET$I$.: SUB P,[XWD I+1,I+1]↔GO @I+1(17)}
DEFINE RET0(R){IFDIF<><R><LAC 1,R>↔POPJ P,}
;ACCUMULATOR TRANSPARENCY.
FOR @$ I←0,17{↓AC$I: 0↔}
DEFINE PUSHAC{PUSH 17,12↔PUSH 17,16}
DEFINE POPAC {POP 17,16↔POP 17,12}
DEFINE SAVAC $(N){LAC[XWD 2,AC2]↔BLT AC$N}
DEFINE GETAC (N){LAC[XWD AC2,2]↔BLT N}
;MACROS FOR ALLOCATING AND NAMING WORKING SPACE.
DEFINE ACCUMULATORS(LIST){ACPTR←←2
FOR AC⊂(LIST)<AC←ACPTR↔ACPTR←←ACPTR+1↔>}
DEFINE DECLARE (LIST){
FOR VARNAM⊂(LIST)<VARNAM: 0↔>}
;FATAL ERROR MESSAGE.
DEFINE FATAL(STR){PUSHJ P,FATAL.↔ASCIZ/STR/}
FATAL.: OUTSTR[ASCIZ/
FATAL - /]↔OUTSTR @(17)↔INCHRW↔GO .-1↔LIT